<?php
class CONEXAO
{
	
	private $user = "root";
	private $password = "";
	private $host = "127.0.0.1";
	private $database = "sgp_database";

	
	private $query = "";

	private $link = "";
	public function __construct()
	{
		

	}
	
	public function Conecta()
	{
		
		$this->link = mysql_connect($this->host,$this->user,$this->password);
		if (!$this->link)
		{
			die("Problema na Conex�o com o Banco de Dados");
		}
		elseif (!mysql_select_db($this->database,$this->link))
		{
			die("Problema na Conex�o com o Banco de Dados");
		}

	}
	
	public function Desconecta()
	{
		return mysql_close($this->link);
	}
	
	public function Executa($comando)
	{
		$this->query = $comando;
		$sql = mysql_query($this->query,$this->link)
		or die(mysql_error($this->link));
	}
	/*Esse m�todo � o responsavel por retornar dados para a aplica��o*/
	public function Consulta($consulta)
	{
		$this->query = $consulta;
		if ($resultado = mysql_query($this->query,$this->link))
		{
			return $resultado;
		} else {
			return 0;
		}
	}

	public function contaRegistros($tabela){
		$valor = $this->Consulta("select count(*) from $tabela");
		if($valor != 0){
			$result = mysql_fetch_assoc($valor);

			return $result['count(*)'];
		}
		else{
			return 0;
		}
	}

	public function maxId($tabela,$prefixo=""){
		$valor = $this->Consulta("select max(".$prefixo."id) max from ".$tabela.";");
		if($valor != 0){
			$result = mysql_fetch_assoc($valor);

			if($result['max']!=null){
				return $result['max'];
			}
			else{
				return 0;
			}
		}
		else{
			return null;
		}
	}

	public function grav($consulta){
		return $this->getResultAsVector($consulta);
	}

	public function getResultAsVector($consulta){

		$arrayRetorno = array();

		$busca = $this->Consulta($consulta);

		if($busca != 0){

			while($result = mysql_fetch_assoc($busca)){

				$arrayRetorno[] = $result;

			}

			return $arrayRetorno;

		}

		else{

			return null;

		}
	}

	public function showSelectHtmlDB($tabela,$campoUnico,$campo,$selecionado="",$nome="",$restricaoSQL="",$atributos=""){

		if($nome==""){
			$nome=$tabela;
		}


		$select = "select $campoUnico,$campo from $tabela $restricaoSQL";

		$busca = $this->getResultAsVector($select);

		$selectHTML ="";
		$selectHTML .= "\n<select $atributos name='$nome' id='$nome'>\n";
		$selectHTML .= "<option value=''>Selecione...</option>\n";


		foreach($busca as $value){


			if($value[$campoUnico]==$selecionado){
				$selectHTML .= "<option selected='selected' value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
			}
			else{
				$selectHTML .= "<option value='".$value[$campoUnico]."'>".$value[$campo]."</option>\n";
			}
		}
		$selectHTML .= "</select>\n";

		return $selectHTML;
	}

	public function funcaoTrans($idElemento,$tabela,$campo){
		if($idElemento!=0 && $idElemento!="" && $idElemento!=null){
			$this->Conecta();
			$valor = $this->getResultAsVector("select $campo from $tabela where id = $idElemento");
			$this->Desconecta();
			if($valor[0][$campo]!='')
				return $valor[0][$campo];
			else
				return 'valor n�o encontrado';
		}
		else{
			return "n�o existe";
		}
	}

	public function showCheckBoxGroupHtmlDB($tabelaRelacao,$tabelaAlvo,$campoUnico,$campoMostrado,$nome="",$restricaoSQL="",$atributos=""){

		if($nome==""){
			$nome=$tabelaAlvo;
		}



		$select = "select $campoUnico,$campoMostrado from $tabelaAlvo $restricaoSQL";


		$this->Conecta();
		$busca = $this->getResultAsVector($select);
		$this->Desconecta();
		$HTML ="";
		foreach($busca as $value){
			$HTML .="<input type='checkbox' id='".$nome.$value[$campoUnico]."' name='".$nome."[".$value[$campoUnico]."]'> ".$value[$campoMostrado]." <br/>\n";
		}




		return $HTML;
	}

	public function pegaAttrRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

		$busca = $this->pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados);

		$HTML ="";
		if(count($busca)){
			foreach($busca as $value){

				$HTML .=$value[$camposMostrados]."<br/>\n";

			}
		}
		else{
			$HTML = "Nenhum resultado encontrado";
		}


		return $HTML;
	}
	public function pegaArrayRelacaoNN($tbOrigem,$tbRel,$idOrigem,$campoOrigem,$idBuscado,$campoBusca,$camposMostrados){

		if(is_array($camposMostrados)){
			$campos = "";
			foreach($camposMostrados as $valor){
				$campos .= "t1.".$camposMostrados.",";
			}
			$ordem = "t1.".$camposMostrados[0];
			$campos = substr($campos, 0, -1);

		}
		else{
			$ordem = "t1.".$camposMostrados;
			$campos = "t1.".$camposMostrados;
		}


		$select = "select $campos from
		$tbOrigem t1,
		$tbRel t2
		where t1.$idOrigem = t2.$campoOrigem
		and t2.$campoBusca = $idBuscado
		order by $ordem
		;";

		$this->Conecta();
		$busca = $this->getResultAsVector($select);
		$this->Desconecta();

		return $busca;

	}


	}

	
	?>